package com.ccjq.jq173.product.service.impl;

import com.ccjq.jq173.core.util.PageUtils;
import com.ccjq.jq173.product.dao.ProductDao;
import com.ccjq.jq173.product.dao.impl.ProDuctDaoImpl;
import com.ccjq.jq173.product.po.Category;
import com.ccjq.jq173.product.po.PageInfo;
import com.ccjq.jq173.product.po.Product;
import com.ccjq.jq173.product.po.Slider;
import com.ccjq.jq173.product.service.ProductService;

import org.apache.commons.lang3.StringUtils;

import java.util.List;

public class ProductServiceimpl implements ProductService {
    private ProductDao ductdao;
    public ProductServiceimpl()
    {
        ductdao=new ProDuctDaoImpl();
    }
    @Override
    public PageInfo<Product> queryProducts(String categoryId, int pageSize, int pageNo) {
        PageUtils  p=new PageUtils();
        int startRow=p.getStartRow4Oracle(pageSize,pageNo);//计算起始行
        int endRow=p.getEndRow4Oracle(pageSize,pageNo);//计算结束行
        int total=0;
        List<Product> a=null;
        if(StringUtils.isNotBlank(categoryId))
        {
            a=ductdao.queryAll(categoryId,startRow,endRow);//对象集合
            total=ductdao.getCount(categoryId);// 总记录数
        }
        else
        {
            a=ductdao.queryAll(startRow,endRow);//对象集合
            total=ductdao.getCount();// 总记录数
        }
        int PageCount=p.getPageCount(total,pageSize);//总页数
        PageInfo<Product> pi=new PageInfo<Product>();
        pi.setPageNo(pageNo);//当前页
        pi.setPageSize(pageSize);//每页显示的记录数
        pi.setPages(PageCount);//总页数
        pi.setTotal(total);// 总记录数
        pi.setObjs(a);//数据列表对象
        return pi;
    }

    @Override
    public Product queryProductsDetail(String productId) {
        return ductdao.findProductById(productId);
    }

    @Override
    public List<Product> queryNominateProducts() {
        return ductdao.getNominateProduct();
    }

    @Override
    public List<Category> queryCategorys() {
        return ductdao.queryAll4Category();
    }

    @Override
    public List<Product> queryHotSales() {
        return ductdao.queryHotSale();
    }

    @Override
    public List<Product> queryNewProducts() {
        return ductdao.ququeryNeqwProduct();
    }

    @Override
    public List<Slider> querySliders() {
        return ductdao.querySliders();
    }

    @Override
    public Category getCategoryById(String categoryId) {
        return ductdao.queryCategoryById(categoryId);
    }

    @Override
    public int getStockByProductId(String productId) {
        return ductdao.getStockByProductId(productId);
    }
}
